package com.attilax.spri;

import org.springframework.context.annotation.ComponentScan.Filter;
import org.springframework.core.annotation.Order;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

@Order(3)  
//spring DispatcherServlet的配置,其它servlet和监听器等需要额外声明，用@Order注解设定启动顺序  
/**
 * like web.xml
 *   WebAppInitializer（初始化）  我们不想使用web.xml，所以使用下面的代码配置整个应用：
 * @author Administrator
 *
 */
public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {  
	
	public static void main(String[] args) {
		System.out.println("--f");
	}
  /* 
    * DispatcherServlet的映射路径 
    */  
  @Override  
  protected String[] getServletMappings() {  
      return new String[]{"/sprmvc/*"};  
  }  

  /* 
    * 应用上下文，除web部分 
    */  
//  @SuppressWarnings({ "unchecked", "rawtypes" })  
//  @Override  
//  protected Class[] getRootConfigClasses() {  
//      //加载配置文件类，这里与上面的xml配置是对应的，需要使用@Configuration注解进行标注，稍后介绍  
//      return new Class[] {AppConfig.class, SpringSecurityConfig.class};  
//  }  

  /* 
    * web上下文 
    */  
//  @SuppressWarnings({ "unchecked", "rawtypes" })  
//  @Override  
//  protected Class[] getServletConfigClasses() {  
//      return new Class[] {MvcConfig.class};  
//  }  

  /* 
    * 注册过滤器，映射路径与DispatcherServlet一致，路径不一致的过滤器需要注册到另外的WebApplicationInitializer中 
    */  
//  @Override  
//  protected Filter[] getServletFilters() {  
//      CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();  
//      characterEncodingFilter.setEncoding("UTF-8");  
//      characterEncodingFilter.setForceEncoding(true);  
//      return new Filter[] {characterEncodingFilter};  
//  }

@Override
protected Class<?>[] getRootConfigClasses() {
	 return new Class[] {SpringMvcConf.class};  
//	return null;
}

@Override
//得到controler和ViewResolver的配置
protected Class<?>[] getServletConfigClasses() {
	return new Class[] {SpringMvcConf.class};
}     

}
